/**
 * hnjz.com Inc.
 * Copyright (c) 2004-2014 All Rights Reserved.
 */
package com.hnjz.sys.role;

import java.util.List;

import org.apache.ibatis.session.RowBounds;

/**
 * 角色相关的查询
 * 
 * @author lijingfen
 * @version $Id: RoleMapper.java,  $
 */
public interface RoleMapper {

    /**
     * 根据角色ID获取角色对象
     * 
     * @param id 主键，角色Id
     * @return 角色对象
     */
    Role findById(String id);

    

    /**
     * 插入一个角色
     * 
     * @param user 角色对象
     * @return 插入的条数
     */
    int save(Role role);

    /**
     * 更新一个角色对象
     * 
     * @param user 角色对象
     * @return 更新记录的条数
     */
    int update(Role role);

   
    /**
     * 根据Id删除角色
     * 
     * @param id 
     * @return 删除的条数
     */
    int deleteById(Role role);

    /**
     * 根据角色Id更新角色密码
     * 
     * @param newPassword 密码
     * @param id 角色Id
     * @return 更新记录的条数
     */
    long selectCountByName(Role role);
    
    
    /**
     * 查询角色列表
     * 
     * @return 角色列表
     */
    List<Role> findList();

    /**
     * 分页查询角色列表
     * 
     * @param name 关键词
     * @param rbs {@link RowBounds}
     * @return 角色列表
     */
    List<Role> findListByPage(Role role, RowBounds rbs);
    
    /**
     * 查询记录条数
     * 
     * @param name 关键词
     * @return
     */
    long selectCountByPage(Role role);
    
    /**
     * 获取用户的角色
     * 
     * @param id 用户ID
     * @return 用户对应的角色
     */
    Role findRoleByUserId(String id);

}
